//
//  LoginViewController.m
//  iCinema
//
//  Created by Robin Daniels on 21/11/12.
//  Copyright (c) 2012 Robin Daniels. All rights reserved.
//

#import "LoginViewController.h"
#import "CustomPageViewController.h"
#import "JSONKit.h"
#import "VariableStore.h"

@interface LoginViewController ()

@end

@implementation LoginViewController {

}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    // Stored settings
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    
    // Nagaan of het account opgeslagen is
    if([defaults objectForKey:@"email"] != NULL) {

        // Gebruiker object aanmaken en vullen
        Gebruiker *g = [[Gebruiker alloc] init];
        g.Gebruiker_ID = [defaults objectForKey:@"gebruiker_id"];
        g.Voornaam = [defaults objectForKey:@"voornaam"];
        g.Achternaam = [defaults objectForKey:@"achternaam"];
        g.Geboortedatum = [defaults objectForKey:@"geboortedatum"];
        g.Email = [defaults objectForKey:@"email"];
        
        // Login skippen en direct naar de hoofd-views gaan
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
        CustomPageViewController *view = [storyboard instantiateViewControllerWithIdentifier:@"CustomPage"];
        [[VariableStore sharedInstance] setGlobal_gebruiker:g];
        [self.navigationController pushViewController:view animated:YES];
    }
    
    [super viewDidLoad];
	// Do any additional setup after loading the view.
    
    // Background
    UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"bg.jpg"]];
    self.view.backgroundColor = background;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)viewDidUnload {
    [self setTxtUser:nil];
    [self setTxtPass:nil];
    [super viewDidUnload];    
}

- (void)viewDidAppear:(BOOL)animated {
    self.parentViewController.title = @"Aanmelden";
}

- (IBAction)btnLogin:(id)sender {
    
    // URL voor inlog procedure te valideren door de webservice
    NSString* searchURL = [NSString stringWithFormat:@"http://%@:8080/MyCinemaWebservice/webresources/REST/login?email=%@&ww=%@", [[VariableStore sharedInstance] global_ip], _txtUser.text, _txtPass.text];
	
    // Variabele klaarzetten
	NSError* error = nil;
	NSURLResponse* response = nil;
	NSMutableURLRequest* request = [[NSMutableURLRequest alloc] init];
	NSURL* URL = [NSURL URLWithString:searchURL];
    
    // Response versturen
	[request setURL:URL];
	[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
	[request setTimeoutInterval:30];
	
    // Data verwerken
	NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    
    // Als er 'False' gereturned wordt dan zijn de gegevens fout
    if ([jsonString isEqualToString:@"False"]) {
        
        UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Aanmelden niet gelukt!"
                                                          message:@"Ga na of de gegevens juist zijn."
                                                         delegate:nil
                                                cancelButtonTitle:@"OK"
                                                otherButtonTitles:nil];
        [message show];
  
    // Geen fout
    } else {

        // Gebruiker aanmaken en vullen met gegevens van de webservice response (returned een Gebruikers object)
        Gebruiker *g = [[Gebruiker alloc] init];
        NSDictionary *result = [jsonString objectFromJSONString];
        g.Achternaam = [result objectForKey:@"Achternaam"];
        g.Email = [result objectForKey:@"Email"];
        g.Geboortedatum = [result objectForKey:@"Geboortedatum"];
        g.Gebruiker_ID = [result objectForKey:@"Gebruiker_ID"];
        g.Voornaam = [result objectForKey:@"Voornaam"];
        
        //Gebruikersgegevens opslaan in NSUserDefaults
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:g.Gebruiker_ID forKey:@"gebruiker_id"];
        [defaults setObject:g.Voornaam forKey:@"voornaam"];
        [defaults setObject:g.Achternaam forKey:@"achternaam"];
        [defaults setObject:g.Email forKey:@"email"];
        [defaults setObject:g.Geboortedatum forKey:@"geboortedatum"];
        [defaults setObject:self.txtPass.text forKey:@"password"];
        
        [defaults synchronize];

        // Doorverwijzen naar de main-views
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil];
        CustomPageViewController *view = [storyboard instantiateViewControllerWithIdentifier:@"CustomPage"];
        [[VariableStore sharedInstance] setGlobal_gebruiker:g];
        [self.navigationController pushViewController:view animated:YES];
        
    }

}

- (IBAction)txtUserReturn:(id)sender {
    [_txtUser resignFirstResponder];
}

- (IBAction)txtPassReturn:(id)sender {
    [_txtPass resignFirstResponder];
}

@end
